package com.itheima.tlias.converter;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;

public class GenderConverter implements Converter<Integer> {

    @Override
    public Class<?> supportJavaTypeKey() {
        // 支持的 Java 类型是 Integer
        return Integer.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        // 支持的 Excel 类型是字符串
        return CellDataTypeEnum.STRING;
    }

    /**
     * 读取 Excel 数据时调用
     */
    @Override
    public Integer convertToJavaData(ReadConverterContext<?> context) {
        // 获取单元格中的字符串值
        String gender = context.getReadCellData().getStringValue();
        if ("男".equals(gender)) {
            return 1; // "男" 转换为 1
        } else if ("女".equals(gender)) {
            return 2; // "女" 转换为 2
        }
        return null; // 如果不是 "男" 或 "女"，返回 null
    }

    /**
     * 写入 Excel 数据时调用
     */
    @Override
    public WriteCellData<?> convertToExcelData(WriteConverterContext<Integer> context) {
        // 获取 Java 对象中的值
        Integer gender = context.getValue();
        if (gender == 1) {
            return new WriteCellData<>("男"); // 1 转换为 "男"
        } else if (gender == 2) {
            return new WriteCellData<>("女"); // 2 转换为 "女"
        }
        return new WriteCellData<>("未知"); // 如果值不在范围内，返回 "未知"
    }
}